package com.cjy.common.utils;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author Cheng JiYe
 * @description:
 * @date 2021/11/13 20:19
 */
public class TimestampUtils {

  /**
   * 获取当前时间的时间戳
   *
   * @return Timestamp
   */
  public static Timestamp getCurrTimestamp() {
    return new Timestamp(System.currentTimeMillis());
  }

  /**
   * 字符串转换时间戳
   *
   * @param str
   * @return
   */
  public static Timestamp str2Timestamp(String str, String pattern) {
    Date date = getDate(str, pattern);
    return new Timestamp(date.getTime());
  }

  /**
   * 时间戳转换为字符串
   *
   * @param time
   * @return
   */
  public static String timestamptoStr(Timestamp time, String pattern) {
    if (time == null) {
      return null;
    }
    Date date = new Date(time.getTime());
    return getDateToString(date, pattern);
  }

  /**
   * 获取日期对象
   *
   * @param date yyyy-MM-dd
   * @return
   */
  public static Date getDate(String date, String pattern) {
    Date parseDate = null;
    try {
      // 设置日期格式
      SimpleDateFormat df = new SimpleDateFormat(pattern);
      parseDate = df.parse(date);
    } catch (ParseException e) {
      e.printStackTrace();
    }
    return parseDate;
  }

  /**
   * 把Date类型转为地址日期格式的时间字符串
   *
   * @param date 时间
   * @param pattern 日期格式
   * @return
   */
  private static String getDateToString(Date date, String pattern) {
    // 设置字符串格式
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
    return simpleDateFormat.format(date);
  }
}
